package com.wkck.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wkck.VO.CompanyAllInfoListByIdsDto;
import com.wkck.VO.CompanyInfoVo;
import com.wkck.VO.CompanyVo;
import com.wkck.VO.PageResult;
import com.wkck.domain.Company;
import com.wkck.dto.CompanyQueryParamsDto;
import com.wkck.dto.SaveCompanyInfoDto;

import java.util.List;

/**
 * @Author: CK
 * @Date: 2023/12/22/21:34
 * @Description:
 */
public interface CompanyService extends IService<Company> {

    /**
    * @Author: CK
    * @Date: 2024/2/8
    * @Param: [companyQueryParamsDto]
    * @Description: 得到所有公司完整信息
    */
    PageResult getAllCompanyInfo(CompanyQueryParamsDto companyQueryParamsDto);

    /***
    * @Author: CK
    * @Date: 2024/2/9
    * @Description: 清理缓存
    */
    Boolean clearCache();

    /***
    * @Author: CK
    * @Date: 2024/2/10
    * @Param: [saveCompanyInfoDto]
    * @Description: 保存公司信息
    */
    Boolean saveCompanyInfo(SaveCompanyInfoDto saveCompanyInfoDto);

    /***
    * @Author: CK
    * @Date: 2024/2/11
    * @Param: [uuid]
    * @Description: 根据uuid获得公司信息
    */
    CompanyInfoVo getCompanyInfoByUUID(String uuid);

    /***
    * @Author: CK
    * @Date: 2024/2/11
    * @Param: [ids]
    * @Description: 批量删除公司信息
    */
    Boolean removeCompanyInfoByIds(List<Integer> ids);

    /***
    * @Author: CK
    * @Date: 2024/2/12
    * @Param: [saveCompanyInfoDto]
    * @Description: 修改公司信息
    */
    Boolean modifyCompanyInfo(SaveCompanyInfoDto saveCompanyInfoDto);

    /***
     * @Author: CK
     * @Date: 2024/2/12
     * @Param: [id, state]
     * @Description: 修改公司状态
     */
    Boolean updateCompanyState(Integer id, Integer state);

    /**
    * @Author: CK
    * @Date: 2024/2/12
    * @Param: [ids]
    * @Description: 公司信息详情
    */
    List<CompanyAllInfoListByIdsDto> getCompanyInfoByIds(List<Integer> ids);

    /**
     * @Author: CK
     * @Date: 2024/3/16
     * @Param: [company]
     * @Description: 根据公司名称获得公司信息
     */
    CompanyVo getCompanyVo(String company);
}
